1. Technical Field
This invention relates to a technique used for realizing efficient data communication.
2. Background Art
TCP (Transmission Control Protocol) is a communication protocol used in Transport Layer under the OSI (Open Systems Interconnection) Reference Model, and serves to ensure reliable data communication. Specifically, when communication is performed according to TCP, data is divided into portions of data with a predetermined data size, each of which data portions is transmitted as a data block (hereinafter referred to as a “segment”) after a unique header is added thereto. Each header contains a sequence number for uniquely identifying a data portion contained in a segment to which the header is added, and the sequence number essentially corresponds to an order of segments transmitted from a transmitter device.
According to TCP, a certain number of segments are transmitted in succession into the network at the beginning of a data transfer from a transmitter device according to a number defined by a “congestion window size,” where the window size is a number of segments that can be transmitted in succession prior to receipt of an acknowledgment from a receiver device requesting transmission of a subsequent segment. The transmitter device gradually increases, according to a predetermined algorithm called a slow start algorithm, the number of segments transmitted in succession, i.e., the congestion window size, for each acknowledgment received. To prevent possible congestion in the network resulting from transmission of a large number of segments at an initial stage of the communication, the congestion window size is increased gradually.
However, use of the slow start algorithm prevents efficient data communication since, even when a data flow is well below a capacity of a band of a communication line, the algorithm nonetheless increases a congestion window size only gradually. As a result, when using the algorithm, it usually takes some time until an optimum use of the band is realized. A technique for solving this problem is discussed in Laid-Open Japanese Patent Application JP 2001-298485.
The technique disclosed in JP 2001-298485 enables efficient data transmission as in the following. A transmitter device stores a default value and a predetermined threshold of a congestion window size. Upon initiation of data transmission, the transmitter device transmits a number of segments according to the default congestion window size. In a case that the window size remains smaller than the threshold at a time of receiving an acknowledgement for the transmitted segment(s), the transmitter device increases the congestion window size up to the predetermined threshold. Thus, efficient data transmission is enabled.
In communication using the Internet, a transmitter device and a receiver device are not usually connected to the same communication network and rarely communicate directly with each other. Generally, as shown in FIG. 7, a receiver device 210 is connected to a communication network 230A; and a transmitter device 220 is connected to a communication network 230B. The communication network 230A is connected to the communication network 230B via a relay device 240 such as a router, and transmitter device 220 and receiver device 210 communicate with each other via relay device 240. However, when the technique disclosed in JP 2001-298485 is applied to data communication performed via relay device 240, as the case in the system shown in FIG. 7, a possibility exists that a number of segments exceeding a capacity of relay device 240 may be transmitted to the relay device, thereby resulting in congestion.